﻿using System;
using System.ComponentModel;

namespace MugenMvvmToolkit.Interfaces.Models
{
    /// <summary>
    ///     Represents the model that has operation result.
    /// </summary>
    public interface IHasOperationResult : INotifyPropertyChanged
    {
        /// <summary>
        ///     Gets or sets the operation result value.
        /// </summary>
        bool? OperationResult { get; set; }
    }

    /// <summary>
    ///     Represents the model that has operation result and callback for it.
    /// </summary>
    public interface IHasOperationResultCallback : IHasOperationResult
    {
        /// <summary>
        ///     Occurs when a operation result value changes.
        /// </summary>
        event Action<IHasOperationResultCallback, bool?> OperationResultChanged;
    }
}